<?php
//刷还大额E通道
namespace app\pay\service;
class Hqdee extends Hqbase
{
    protected $mchId = "jn2019032514062";//商户号
    protected $signKey = "baede106";//密钥
    protected $version = "0100";
    protected $apiUrl="http://pay.huanqiuhuiju.com/authsys/api/repay/execute.do";

    /**
     * 鉴权
     * @param array $param
     * @return bool|mixed|string
     */
    public function register($param=[]){
        if(empty($param) || !is_array($param)){
            return false;
        }

        $data = [
            //公共参数
            "methodname"=>"register",//方法名
            "transcode"=>"015",//交易码;015落地还款H;902查询接口
            "version"=>$this->version,//版本号
            "merchno"=>$this->mchId,//商户号

			//业务参数
            "ordersn"=>$param["ordersn"],//流水号
            "dsorderid"=>$param["dsorderid"],//商户订单号
            "accountName"=>$param["accountName"],//真实姓名
            "idcard"=>$param["idcard"],//身份证号
            "mobile"=>$param["mobile"],//预留手机号
        ];
        //halt($data);
        return $this->unified($data);
    }



    //扣款
    public function pay($param){
        if(empty($param) || !is_array($param)){
            return false;
        }

        $data=[
            "methodname"=>"pay",//方法名
            "transcode"=>"015",//交易码;015落地还款H;902查询接口
            "version"=>"0100",//版本号
            "ordersn"=>$param["ordersn"],//流水号
            "dsorderid"=>$param["dsorderid"],//商户订单号
            "merchno"=>$this->mchId,//商户号


            "subMerchantNo"=>$param["subMerchantNo"],//子商户号
            "amount"=>$param["amount"],//金额
            "futureRateValue"=>$param["futureRateValue"],//每笔费率
            "fixAmount"=>$param["fixAmount"],//单笔价格
            "bankcard"=>$param["bankcard"],//银行卡号
            "accountName"=>$param["accountName"],//真实姓名
            "idcard"=>$param["idcard"],//身份证号
            "mobile"=>$param["mobile"],//手机号
            "cvn2"=>$param["cvn2"],//
            "expireDate"=>$param["expireDate"],//有效期
            "province"=>$param["province"],//商户地区xuan
            "notifyUrl"=>$param["notifyUrl"],//异步通知地址
        ];
        //halt($data);
        return $this->unified($data);
    }


    //代付（还款）
    public function withDraw($param){
        if(empty($param) || !is_array($param)){
            return false;
        }

        $data=[
            "methodname"=>"withDraw",//方法名
            "transcode"=>"015",//交易码;015落地还款H;902查询接口
            "version"=>$this->version,//版本号
			"ordersn"=>$param["ordersn"],//流水号
			"dsorderid"=>$param["dsorderid"],//商户订单号
            "merchno"=>$this->mchId,//商户号


            "subMerchantNo"=>$param["subMerchantNo"],//子商户号
            "amount"=>$param["amount"],//金额以分为单位，不能有小数点
            "fixAmount"=>$param["fixAmount"],//单笔价格以分为单位，不能有小数点
            "bankcard"=>$param["bankcard"],//银行卡号
            "mobile"=>$param["mobile"],//预留手机号
            "cardType"=>$param["cardType"],//卡类型xuan借记卡：DEBIT  贷记卡：CREDIT
            "notifyUrl"=>$param["notifyUrl"],//异步通知地址
        ];
        //halt($data);
        return $this->unified($data);
    }


    //商户余额接口
    public function queryBalance($param){
        if(empty($param) || !is_array($param)){
            return false;
        }

        $data=[
            "methodname"=>"queryBalance",//方法名
            "transcode"=>"015",//交易码;015落地还款H;902查询接口
            "version"=>$this->version,//版本号

			"ordersn"=>$param["ordersn"],//流水号
			"dsorderid"=>$param["dsorderid"],//商户订单号
            "merchno"=>$this->mchId,//商户号
            "subMerchantNo"=>$param["subMerchantNo"],//子商户号
        ];
        return $this->unified($data);
    }


    //订单查询接口
    public function queryOrder($param){
        if(empty($param) || !is_array($param)){
            return false;
        }

        $data=[
            "transcode"=>"902",//订单查询
            "version"=>$this->version,//版本号

			"ordersn"=>$param["ordersn"],//流水号
			"dsorderid"=>$param["dsorderid"],//商户订单号
            "merchno"=>$this->mchId,//商户号
            "transtype"=>$param["transtype"],//交易类型85交易86代付
        ];
        //halt($data);
        return $this->unified($data,"http://pay.huanqiuhuiju.com/authsys/api/auth/execute.do");
    }


    private function create_order_no() {
        $order_no = date('Ymd').substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(1000, 9999));
        return $order_no;
    }
}